Á¾¼Ó¼º ºÐ¼®

 

Analyze Dependencies Æ¯Â¡Àº ´ç½Å¿¡°Ô ´ç½ÅÀÌ Èï¹Ì ÀÖ´Â Äڵ尡 ¹«¾ù¿¡ ÀÇÁ¸ÇÏ´ÂÁö¸¦ ¾Ë±â À§ÇØ °¡´É¼ºÀ» ÁÝ´Ï´Ù.  ¶ÇÇÑ Æ¯º°ÇÑ ´ÙÀ̾ó·Î±× ¾ð¾îÀÇ µµ¿òÀ¸·Î ´ç½ÅÀº ³ªÅ¸³ª´Â Ç׸ñÀ» ÇÊÅ͸µ ÇÒ ¼ö ÀÖ½À´Ï´Ù.

Analyze Dependencies °¡ ´ÙÀ̾ó·Î±×¸¦ ºÎ¸£±â À§ÇØ, ÁÖ ¸Þ´º¿¡¼­ Analyze Dependencies   ¼±ÅÃÇϽʽÿÀ. ¶Ç´Â ÇÊ¿äÇÑ Ç׸ñ(Ŭ·¡½º, ÆÐŰÁö, µî)À» ¿À¸¥ÂÊ ¹öưÀ» Ŭ¸¯ÇÏ°í ¿¡µðÅÍ¿¡¼­ Analyze Analyze Dependencies ¸¦ ¼±ÅÃÇϰí, Project ViewÀÇ Project ¿Í  Packages ÅÇ ¶Ç´Â  J2EE  ÅÇ ( Project View  ) ¶Ç´Â CommanderÀÇ Analyze Dependencies  ¼±ÅÃÇÏ´Â °Í¿¡ ÀÇÇØ ºÒ·ÁÁö´Â ¹®¸Æ ´ëÀÀ ¸Þ´º·ÎºÎÅÍ ´ç½ÅÀº ±×°ÍÀ» Âø¼öÇÒ ¼ö ÀÖ½À´Ï´Ù.


¸¸ÀÏ ´ç½ÅÀÌ ¿¡µðÅÍ ¶Ç´Â ÆÄÀÏ(¸Þ´ºÀÇ ¾î¶² °Í¿¡¼­) À§¿¡¼­ Analyze Dependencies¸¦ ºÎ¸£¸é ´ç½Å¿¡°Ô Specify Dependency Analysis Scope ´ÙÀ̾ó·Î±×°¡ ÇÁ·ÒÇÁÆ® µÉ °Í ÀÔ´Ï´Ù´ç½ÅÀÌ ÇöÀçÀÇ ÆÄÀÏ(µðÆúÆ®)³ª Àüü ÇÁ·ÎÁ§Æ®¸¦ ºÐ¼®ÇÏ°í ½Í¾îÇÏ´ÂÁö´Â ¼±ÅÃÇϱâ(»óÀÀÇÏ´Â ¿É¼Ç ¹öư°ú ´õºÒ¾î) À§ÇØ »ç¿ëµË´Ï´Ù.



±× ´ÙÀ½ Dependency Viewer Åø À©µµ¿ì°¡ ³ªÅ¸³³´Ï´Ù.


IntelliJ IDEAÀÇ Åø À©µµ¿ì¿¡¼­ ÀÏ¹Ý Á¤º¸¸¦ À§ÇØ Åø À©µµ¿ì ¼½¼ÇÀ» ÂüÁ¶ÇϽʽÿÀ.




 
Åø À©µµ¿ì´Â 3°³ÀÇ À©µµ¿ì·Î ±¸¼ºµË´Ï´Ù.  ÁÂÃø »ó´ÜÀÇ À©µµ¿ì(Analyzed Code Window)´Â Æ®¸® º¸±â·Î¼­ ´ç½ÅÀÇ ÇÁ·ÎÁ§Æ® ÆÄÀÏÀ» Ç¥½ÃÇÕ´Ï´Ù.  ´Ù¸¥ ¾î´À Ŭ·¡½º(ÇÁ·ÎÁ§Æ®, ¶óÀ̺귯¸® ¶Ç´Â ÀÚ¹Ù SDK¿¡)¿¡ ÀÇÁ¸ÇÏ´Â Java ÆÄÀÏÀ» ¼±ÅÃÇÏ´Â °ÍÀº Ç׸ñ¿¡ ¼±ÅÃµÈ Java ´ë»ó ÆÄÀÏÀÌ »óÀ§ ¿À¸¥ÂÊ À©µµ¿ì(Parent Code Window)¿¡¼­ ÀÇÁ¸ÇÏ´Â °ÍÀ» º¸¿©ÁÝ´Ï´Ù. ¿ìÃø À©µµ¿ì¿¡¼­ Ç׸ñÀ» ¼±ÅÃÇÏ´Â °ÍÀº ´õ ¾Æ·¡ À©µµ¿ì(Usage Window)¿¡¼­ ºÐ¼®µÈ Á¾¼ÓÀÇ(¿ÞÂÊ À©µµ¿ì) Äڵ忡¼­ ºÎ¸ðÀÇ (¿ìÃø À©µµ¿ì)ÄÚµåÀÇ ¸ðµç »ç¿ëÀ» Ç¥½ÃÇÕ´Ï´Ù.

Usage Window´Â  Find tool window¿Í À¯»çÇÑ Åø¹Ù¿Í ¹®¸Æ ¸Þ´º¸¦ °¡Áö°í ÀÖ½À´Ï´Ù.

Dependency Viewer Åø À©µµ¿ì´Â ´ÙÀ½ ¹öư°ú ÇÔ²² Åø¹Ù¸¦ °¡Áý´Ï´Ù:


Close  

Ctrl + Shift + F4  

Åø À©µµ¿ì¸¦ ´ÝÀ¸½Ê½Ã¿À.

Rerun  

Ctrl + F5  

ÀÇÁ¸ ±¸Á¶ ÇØ¼®¹ýÀ» Àç½ÇÇà ÇϽʽÿÀ.

Flatten Packages  

 

¹öưÀÌ ´­¸± ¶§, ¸ðµç ÆÐŰÁö´Â ÇϳªÀÇ ·¹º§ Æ®¸® º¸±â·Î¼­ Ç¥½ÃµË´Ï´Ù.  µû¶ó¼­, ¸¸ÀÏ ´ç½ÅÀÇ ÆÐŰÁö°¡ ´ç½ÅÀÇ ÇÁ·ÎÁ§Æ® ³»¿¡¼­ ±íÀº ¾î¶² °÷À̶ó¸é, ±×°ÍÀ» ÅÇ¿¡¼­ ¹ß°ßÇϱâ À§ÇØ Áö±Ý ¹æ±Ý ±× À̸§À» ¹ß°ßÇÏ´Â °ÍÀº Àüü Æ®¸® °èÃþÀ» Áö³ª±â À§ÇØ ÇÊ¿äÇÏÁö ¾Ê½À´Ï´Ù.

Show Files  

 

´­¸± ¶§, Analyzed Code Window¿Í Parent Code Window ÀÇ ÆÄÀÏÀÌ º¸ÀÔ´Ï´Ù.

Show Modules  

 

´­¸± ¶§, Æ®¸® º¸±âÀÇ Ç׸ñÀº »óÀÀÇÏ´Â ¸ðµâ ³ëµå ¾Æ·¡¿¡¼­ ³ªÅ¸³³´Ï´Ù.  ±×·¸Áö ¾ÊÀ¸¸é, ÇÁ·ÎÁ§Æ® Ç׸ñÀº »óÀÀÇÏ´Â ÆÐŰÁö(ÆÐŰÁö¿Í ´õºÒ¾î sourcepath¿Í °°Àº) ¾Æ·¡¿¡¼­ ³ªÅ¸³³´Ï´Ù.


Modules ÀÇ Á¸Àç´Â ´ç½ÅÀÌ ¸î °³ÀÇ ¸ðµâ Áß¿¡ ÇÑ ÆÐŰÁö ºÐÇÒÀ» °¡Áö´Â °ÍÀ» °¡´ÉÇÏ°Ô ÇÕ´Ï´Ù.  ±×¸®°í ³ªÅ¸³ª´Â ¸ðµâ ¾øÀÌ ´ç½ÅÀº ±×°ÍÀ» ¹ß°ßÇÒ ¼ö ¾ø½À´Ï´Ù.


 

Group by Scope  Type  

 

´­¸± ¶§, Æ®¸®ÀÇ Ç׸ñÀº ±×µéÀÇ ¹üÀ§ ŸÀÔ, Áï Á¦ÀÛ, ½ÃÇè ¶Ç´Â ¶óÀ̺귯¸®¿¡ ÀǰÅÇÏ¿© ³ªÅ¸³³´Ï´Ù.

Show Illegals Only  

 

´­¸± ¶§, ºÒ¹ýÀûÀÌ°í ¹«È¿ÇÑ Á¾¼Ó¼º¸¸À» Ç¥½ÃÇÕ´Ï´Ù.

Edit Rules  

 

Call the Dependency Validation  dialog allowing you to set valid dependencies for analysis. 
Á¾¼Ó¼º È®ÀΠ
´ÙÀ̾ó·Î±×¸¦ ºÎ¸£¸é ´ç½ÅÀ¸·Î ÇÏ¿©±Ý ºÐ¼®À» À§ÇÑ À¯È¿ÇÑ Á¾¼Ó¼ºÀ» ¼³Á¤Çϵµ·Ï Çã¶ôÇÕ´Ï´Ù.

 

Á¾¼Ó¼º È®ÀÎ


Á¾¼Ó¼ºÀ» ºÐ¼®ÇÏ¸é ´ç½ÅÀº ±×µéÀÇ ÀϺθ¦ Á¦¿ÜÇÒ Çʿ䰡 ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù.  ´Ù¸¥ ¸»·Î Çϸé, ´ç½ÅÀÇ ÇÁ·ÎÁ§Æ® ºÐ¼®¿¡ ´ëÇØ À¯È¿ÇÏ°í ¹«È¿ÇÑ Á¾¼Ó¼ºÀ» ¼³Á¤Çϱâ À§Çؼ­.  Dependency Validation ´ÙÀ̾ó·Î±×´Â ´ç½Å¿¡°Ô ±×·± ¹«È¿ÇÑ Á¾¼Ó¼ºÀ» ±â¼úÇϰí ÀÖ´Â ±ÔÄ¢À» ¼±¾ðÇÏ´Â °ÍÀ» Çã¶ôÇÕ´Ï´Ù.



´ÙÀ̾ó·Î±×´Â ±ÔÄ¢ ¸ñ·Ï°ú ¸î °³ÀÇ ¹öư°ú ÇÔ²² ÆÐ³Î·Î ±¸¼ºµË´Ï´Ù.

Deny usages of  

µå·Ó-´Ù¿î ¸Þ´º´Â ´ç½ÅÀÌ »ç¿ë ¹üÀ§ ÆÐÅÏÀ» »ý·«µÈ(¹«È¿·Î¼­) °ÍÀ¸·Î ¼±ÅÃÇÏ´Â °ÍÀ» °¡´ÉÇÏ°Ô ÇÕ´Ï´Ù.  ¹üÀ§ ÆÐÅÏÀ» ¼³Á¤Çϱâ À§ÇØ ellipsis ´­·¯¼­ ¹üÀ§ ÆíÁý ´ÙÀ̾ó·Î±×¸¦ ºÎ¸£½Ê½Ã¿À.

in  

The drop-down menu enables you to select the usage scope pattern where the previously selected usages are to be omitted. To set the scope pattern press the ellipsis  button to call the Edit Scopes  dialog. 
µå·Ó-´Ù¿î ¸Þ´º´Â ´ç½ÅÀÌ ÀÌÀü¿¡ ¼±ÅÃµÈ »ç¿ëÀÌ »ý·«µÈ »ç¿ë ¹üÀ§ ÆÐÅÏÀ» ¼±ÅÃÇÏ´Â °ÍÀ» °¡´ÉÇÏ°Ô ÇÕ´Ï´Ù.  ¹üÀ§ ÆÐÅÏÀ» ¼³Á¤Çϱâ À§ÇØ ellipsis ´­·¯¼­ ¹üÀ§ ÆíÁý ´ÙÀ̾ó·Î±×¸¦ ºÎ¸£½Ê½Ã¿À.


Add RuleÀº ÆÐÅÏ ¸ñ·ÏÀ¸·Î ¶Ç ´Ù¸¥ ¶óÀÎÀ» Ãß°¡ÇÕ´Ï´Ù.

Remove Rule Àº ´ç½ÅÀÌ ¸ñ·Ï¿¡¼­ ¼±ÅÃÇß´ø ±ÔÄ¢ Çã¿ëÀ» Á¦°ÅÇϵµ·Ï Çã¶ôÇÕ´Ï´Ù.
Move up/Move down ´Â ¸ñ·ÏÀÇ ¼±ÅÃµÈ ÆÐÅÏ ¶óÀÎÀÇ À§ ¾Æ·¡·Î ¿òÁ÷À̱â ÇÕ´Ï´Ù.

Á¾¼Ó¼º È®ÀÎ ¾ð¾î ±¸¹®


Dependency Validation ±¸¹®Àº ÀÇÁ¸ ±¸Á¶ ÇØ¼®¹ý¿¡ °ü·ÃµÇ´Â ÇÁ·ÎÁ§Æ® ¹üÀ§¸¦ ÁöÁ¤Çϱâ À§ÇØ »ç¿ëµË´Ï´Ù.

ÁÖ¿ä ¹ýÄ¢Àº ´ÙÀ½°ú °°½À´Ï´Ù: "Deny usages of <Set A> in <Set B>" <Set A>¿Í <Set B> ´Â ´ç½ÅÀÇ ÇÁ·ÎÁ§Æ®¿¡¼­ º¸¿©Áö´Â ¾î¶² Ŭ·¡½ºÀÇ ¼¼Æ®°¡ ÀÖ´Â °÷ÀÔ´Ï´Ù.

*   ½Ì±Û Ŭ·¡½º ¼¼Æ®:
°¡Àå ´Ü¼øÇÑ ¼¼Æ®´Â Ŭ·¡½º À̸§À» ´Ü¼øÈ÷ Á¦°øÇÒ »Ó ÀÔ´Ï´Ù. Áï  <com.intellij.OpenApi.MyClass>.

*   ¼­ºê ÆÐŰÁö°¡ ¾Æ´Ñ ÆÐŰÁöÀÇ ¸ðµç Ŭ·¡½ºÀÇ ¼¼Æ®:
µµÆ®(.)ÈÄ¿¡ º°Ç¥(*)¸¦ »ç¿ëÇÏ¿© ´ç½ÅÀº ¼­ºê ÆÐŰÁö¸¦ Á¦¿ÜÇÑ ÆÐŰÁö¿¡¼­ ¸ðµç Ŭ·¡½ºÀÇ ¼¼Æ®¸¦ Á¤ÀÇÇÕ´Ï´Ù. Áï <com.intellij.OpenApi.*>.

*   ¼­ºêÆÐŰÁö¿¡¼­ »Ó¸¸ ¾Æ´Ï¶ó ÆÐŰÁö¿¡¼­ ¸ðµç Ŭ·¡½ºÀÇ ¼¼Æ®:

*   ´õºí µµÆ®(..)ÈÄ¿¡ º°Ç¥(*)¸¦ »ç¿ëÇÏ¿© ´ç½ÅÀº ¼­ºêÆÐŰÁö¿¡¼­ »Ó¸¸ ¾Æ´Ï¶ó ÆÐŰÁö¿¡¼­ ¸ðµç Ŭ·¡½ºÀÇ ¼¼Æ®¸¦ Á¤ÀÇÇÕ´Ï´Ù. Áï <com.intellij.OpenApi..*>.

¼¼Æ®¸¦ Á¤ÀÇÇϱâ À§ÇÏ¿© ¸î °³ÀÇ º¯°æÀÚ°¡ ÀÖ½À´Ï´Ù.

*   À§Ä¡ º¯°æÀÚ:
You can specify whether the desired set is located in source files, library classes or test code in the form of
src:<E>, lib:<E> and test:<E> where <E> is the target set.

*   ´ç½ÅÀº ¿øÇÏ´Â ¼¼Æ®°¡ ¼Ò½º ÆÄÀÏ, ¶óÀ̺귯¸® Ŭ·¡½º ¶Ç´Â src:<E>, lib:<E> and test:<E> where <E> is the target set ÀÇ ÆûÀÇ Å×½ºÆ® Äڵ尡 À§Ä¡ÇÒ °ÍÀÎÁö ¾î¶²Áö Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é, <src : com.intellij.OpenApi.*>´Â ¼­ºê ÆÐŰÁö¸¦ Á¦¿ÜÇÑ com.intellij.OpenApi  ÆÐŰÁöÀÇ ¼Ò½º Æú´õ ¾Æ·¡ÀÇ ¸ðµç Ŭ·¡½º¸¦ Æ÷ÇÔÇÕ´Ï´Ù.

*   ¸ðµâ º¯°æÀÚ:
You can specify the desired set even further with a module in your source, library or test classes.

*   ´ç½ÅÀº ½ÉÁö¾î ´õ ³ª¾Æ°¡ ´ç½ÅÀÇ ¼Ò½º, ¶óÀ̺귯¸® ¶Ç´Â Å×½ºÆ® Ŭ·¡½ºÀÇ ¸ðµâ°ú ÇÔ²² ¿øÇÏ´Â ¼¼Æ®¸¦ Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù.

*   ±×°ÍÀº ´ÙÀ½°ú °°ÀÌ º¸ÀÏ °Í ÀÔ´Ï´Ù: src[MyJavaModule]:<E>, lib[MyJavaModule]:<E> and test[MyJavaModule]:<E> where <E> is the target set. ¿¹¸¦ µé¸é, <src[MyJavaModule] : com.intellij.OpenApi.*> ´Â ¼­ºê ÆÐŰÁö¸¦ Á¦¿ÜÇÑ com.intellij.OpenApi  ÆÐŰÁöÀÇ MyJavaModule ¸ðµâ¿¡ °ü·ÃµÈ ¼Ò½º Æú´õ ¾Æ·¡ÀÇ ¸ðµç Ŭ·¡½º¸¦ Æ÷ÇÔÇÕ´Ï´Ù.

*   ³í¸®Àû ¿ÀÆÛ·¹ÀÌÅÍ:
¾ð¾î´Â ´ç½ÅÀ¸·Î ÇÏ¿©±Ý AND (&&), OR (||) ±×¸®°í NOT(!)°ú °°Àº °øÅë ³í¸®Àû ¿¬»êÀÚ¸¦ »ç¿ëÇϵµ·Ï Çã¶ôÇÕ´Ï´Ù.